﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using UploadServer.FrontEndDemo.Util;

namespace UploadServer.FrontEndDemo.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class ValuesController : ControllerBase
    {
        // GET api/values
        [HttpGet]
        public ActionResult<IEnumerable<string>> Get()
        {
            return new string[] {"value1", "value2"};
        }

        // GET api/values/5
        [HttpGet("{id}")]
        public ActionResult<string> Get(int id)
        {
            return "value";
        }

        // POST api/values
        [HttpPost]
        public void Post([FromBody] string value)
        {
        }

        // PUT api/values/5
        [HttpPut("{id}")]
        public void Put(int id, [FromBody] string value)
        {
        }

        // DELETE api/values/5
        [HttpDelete("{id}")]
        public void Delete(int id)
        {
        }
        /// <summary>
        /// 获取token
        /// </summary>
        /// <returns></returns>
        [HttpGet("GetToken")]
        public ActionResult GetToken()
        {
            var token = JwtTokenHelper.GenerateJwtToken("1234ABC","张三");
            return Ok(new { 
                code=1,
                msg="成功",
                data=token
            });
        }
        /// <summary>
        /// 验证Token
        /// </summary>
        /// <returns></returns>
        [HttpPost("ValidateToken")]
        public ActionResult ValidateToken([FromBody] string token)
        {
            var result = JwtTokenHelper.ValidateToken(token);
            return Ok(new
            {
                code = 1,
                msg = "",
                data = result
            });
        }
        /// <summary>
        /// 获取上传的token
        /// </summary>
        /// <returns></returns>
        [HttpGet("UploadJwtToken")]
        public ActionResult UploadJwtToken([FromQuery] string secretKey)
        {
            var token = JwtTokenHelper.UploadJwtToken(secretKey);
            return Ok(new
            {
                code = 1,
                msg = "成功",
                data = token
            });
        }
    }
}